#include <iostream>
#include <string>

/*
C++中 结构体和类的 唯一的区别，就是默认的访问控制权限不同：
类中成员的默认访问权限：private
结构体中成员的默认访问权限：public
*/
/*
C语言：如果不使用 typedef 为结构体起别名，
那么在定义结构体变量时必须显式使用 struct 关键字。

 在 C 中，结构体只能封装数据，不能直接包含函数。
 不过，可以使用函数指针在结构体中存储函数地址，
 但这仍然不能将函数本身封装在结构体中。

C++中： C++ 允许直接使用结构体名来定义变量，
无需每次都加上 struct 关键字;
C++ 的结构体允许封装函数，使得结构体能够像类一样包含成员函数。
这意味着结构体不仅可以存储数据，还可以通过成员函数操作数据。
*/


using namespace std;
typedef struct A //可以在结构体外被函数访问
{
	int val_1;
	int val_2;
	int add()
	{
		return val_1 + val_2;
	}
} A;

class B
{
public://若不加public 在类外面无法被访问
	int val_1;
	int val_2;

	int add()
	{
		return val_1 + val_2;
	}
};

int main(int argc, char const *argv[])
{
	A a;
	B b;
	a.val_1 = 10;
	a.val_2 = 20;

	cout << a.add() << endl;

	return 0;
}

